import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import menu from './modules/menu'
import user from './modules/user'

// 模块化导入进来以后，一定要在modules中注册一下，不然不生效

Vue.use(Vuex)

const store = new Vuex.Store({
  // 组合模块的配置项
  // 模块化开发
  // 1.拆封出去的模块要在modules中注册好，
  // 2.一旦开启了命名空间，namespaced  调用 mutation，action
  // this.$store.commit('模块名/mutation名字')
  // this.$store.dispatch('模块名/action名字')
  modules: {
    app,
    settings,
    menu,
    user
  },
  getters
})

export default store

// 1.vuex 和 vuex.Store 实例化出来的store不一样   我们用的是后者
// 2.默认到处的写法，再导入时名字可以随便取名
// 3.按需导出的时候，在导入时，必须加上{} 且名字必须对应
